﻿using Nemerle.Collections;
using Nemerle.Text;
using Nemerle.Utility;

using System;
using System.Collections.Generic;
using System.Linq;

namespace TestAssembly
{
  public module Program
  {
    public Main(_args : array[string]): void
    {
      Console.WriteLine("Some text");
    }

    public Prop : int
    {
      get; set;
    }

    public class Nested
    {
    }

    public enum Enum : short
    {
      | Enum1
      | Enum2
    }

    private _field : int = 0;
    private mutable volatile _volatileField : int = 0;
    private mutable _mutableField : int = 0;

    public static ExtensionMethod(this x : int) : void
    {
      _ = x;
    }

    public static Method(this t : int, x : int, y : ref list[string], z : out Nested) : int * string
    {
      _ = t;
      _ = x;
      _ = y;
      _ = z;
      (2,"test")
    }

    public static MethodWithParams( x : int, params y : array[string]) : void
    {
      _ = x;
      _ = y;
    }
  }

  [Obsolete]
  public class ObsoleteClass {}
}
